package com.heng.test;

import java.util.*;


public class Solution11 {
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     *
     * @param mp int整型ArrayList<ArrayList<>>
     * @return int整型
     */
    static int[][] memo;
    public static int dnd (ArrayList<ArrayList<Integer>> mp) {
        // write code here
        // develop开发分支
        // release分支
        System.out.println("release分支");
        // develop开发分支
        // release分支
        System.out.println("develop开发分支");

        int n = mp.size();
        int m = mp.get(0).size();
        int[][] map = new int[n][m];
        memo = new int[n + 1][m + 1];

        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                map[i][j] = mp.get(i).get(j);
            }
        }
        int min = Integer.MAX_VALUE;
        for (int i = 0; i < n; i++) {
            memo[i + 1][1] = memo[i][1] + map[i][0];
        }
        for (int j = 0; j < m; j++) {
            memo[1][j + 1] = memo[1][j] + map[0][j];
        }
        // -2  -3  1
        // -3 -10  3
        //  0  30 -5

        for (int i = 2; i <= n; i++) {
            for (int j = 2; j <=m; j++) {
                memo[i][j] = Math.max(memo[i - 1][j], memo[i][j - 1]) + map[i - 1][j - 1];
            }
        }

        for (int i = 0; i <= n; i++) {
            System.out.println(Arrays.toString(memo[i]));
        }

        if (min > 0) return 1;
        return -min + 1;
    }

    public static void main(String[] args) {
        ArrayList<ArrayList<Integer>> lists = new ArrayList<>();
        ArrayList<Integer> list1 = new ArrayList<>();
        list1.add(-2);
        list1.add(-3);
        list1.add(1);
        lists.add(list1);
        ArrayList<Integer> list2 = new ArrayList<>();
        list2.add(-3);
        list2.add(-10);
        list2.add(3);
        lists.add(list2);
        ArrayList<Integer> list3 = new ArrayList<>();
        list3.add(0);
        list3.add(30);
        list3.add(-5);
        lists.add(list3);
        System.out.println(dnd(lists));
    }
}